package com.nengchuan.kbms.dfs.service;

import com.nengchuan.kbms.dfs.entity.dto.DownloadFileDTO;
import com.nengchuan.kbms.dfs.entity.po.DataFile;

import java.io.InputStream;
import java.io.OutputStream;

/**
 * <b>Description:</b><br>
 * FastDFS 服务
 * @author Abe
 * @version 1.0
 * <br><b>Date:</b> 2020/4/2 16:57
 */
public interface FdfsService {

    /**
     * 上传文件至 FastDFS 服务
     * @param inputStream 输入流
     * @param fileSize 文件大小
     * @param suffix 扩展名
     * @return 返回 FastDFS FullPath
     */
    String uploadFile(InputStream inputStream, long fileSize, String suffix);

    /**
     * 下载文件
     * @param outputStream 输出流
     * @param realFilePath 真实文件路径
     */
    void downloadFile(OutputStream outputStream, String realFilePath);

    /**
     * 下载文件同时.添加水印
     * @param outputStream 输出流
     * @param dataFile 文件信息
     * @param downloadFileDTO
     */
    void downloadFile(OutputStream outputStream, DataFile dataFile, DownloadFileDTO downloadFileDTO);

}
